home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 February / Macworld (1999-02).dmg / Cinema 4D GO demo / Gumption Plug-ins / Plug-ins / Demos / MultipleSplineAttach V1.2 Demo / Manual / manual.txt
Text File  |  1998-08-06  |  12KB  |  298 lines

  1. *********************************
  2. *** MULTIPLE SPLINEATTACH 1.2 ***
  3. *********************************
  4.  
  5. MSA 1.2 let's you attach one or several objects along a spline.
  6.  
  7. ****************************
  8. *** HOW TO USE THE PLUG? ***
  9. ****************************
  10.  
  11. Basic workflow:
  12.  
  13.  * Create a spline that you want to place the objects along
  14.  
  15.  * Create an object group with objects in or use a single object
  16.  
  17.  * Create an animation track on the spline with a key
  18.  
  19.  * Adjust the parameters
  20.  
  21. Extra things:
  22.  
  23.  * Create an align spline
  24.  
  25.  * Create a scaling spline
  26.  
  27.  * Create more keys for animation
  28.  
  29. *******************
  30. *** THE DIALOGS ***
  31. *******************
  32.  
  33. MSA 1.2 uses an adaptive dialog system which means that what you enter in the 
  34. earlier dialogs decides what dialogs will show up next. This is a guide to all
  35. possible routes.
  36.  
  37. * First dialog: Multiple Splineattach Settings
  38.  
  39.   Group: 
  40.     The name of the object group which contains the objects to be attached,
  41.     or if in single mode the one object to attach.
  42.   
  43.   Rename: 
  44.     see "NAME POSITIONING"
  45.  
  46.   Type: (G, NIG, S)
  47.     1. attaches all objects inside the Group
  48.     2. similarily but internal groups aren't attached
  49.     3. attaches a single object (entered in group-field)
  50.  
  51.   Align and position type: (1 and 2 apply to both)
  52.     1. enter a start value for the first attached object and an end value
  53.        for the last and the plug interpolates between them
  54.     2. enter a start value and then an interval that the value increases 
  55.        with for every object
  56.     3. (aligning) align to a point that lies a specified length ahead on the
  57.        spline or to the base of the next object
  58.     3. (positioning) attaches each object to the position the object is "named"
  59.        see "NAME POSITIONING" for more help
  60.     4. (positioning) the new feature that creates real cool effects :-)
  61.        see "SCALE-SPLINE POSITIONING" for more help
  62.  
  63.   Use scaling:
  64.     0. Scaling is not enabled and the scaling dialog will not be showed
  65.     1. Scaling is enabled and a scaling dialog will appear
  66.  
  67.  
  68. * Second dialog, Position type: 1
  69.  
  70.   Enter the unit you want to use in the "From:"-field
  71.     1. Percent of the length of the spline
  72.     2. Length along spline in Meter
  73.     3. Splinepoints (integers give exact match but one can use 
  74.        decimal numbers to specify positions between points)
  75.  
  76.   Enter the values you want in the corresponding from and two fields. The 
  77.   first object is placed at the from-value and the last at the to-value. 
  78.   The others are placed in between.
  79.  
  80.   Negative wrap:
  81.     If this is 1 the plug treates a negative value as to be counted from 
  82.     the end of the spline. Otherwise negatives are rounded to zero (internally).
  83.  
  84.   Positive wrap:
  85.     If this is 1 the plug treates values that exceeds the splines length as
  86.     if they had looped, i.e. 120% means 20% because the length is 100%. This 
  87.     also applies to negative numbers (-120% becomes -20%). Otherwise the 
  88.     numbers are truncated to the length of the spline.
  89.  
  90. * Second dialog, Position type: 2
  91.  
  92.   Exactly similar to "Position type: 1" but here the objects are placed
  93.   at a start position and then each object is placed a specified interval
  94.   ahead of the former.
  95.  
  96. * Second dialog, Position type: 3
  97.  
  98.   see "NAME POSITIONING"
  99.  
  100. * Second dialog, Position type: 4
  101.  
  102.   see "SCALE-SPLINE POSITIONING"
  103.  
  104.  
  105. * Third dialog, Align type: 1 and 2
  106.  
  107.   Method: (the method of aligning)
  108.     1. Vector: This aligns the Z-axis along the spline and the Y-axis is
  109.                trying to point at a user-specified world-vector. (standard
  110.                is straight up)
  111.     2. World:  This rotates the objects by normal HPB values as they would
  112.                be oriented if they were outside all hierarchy with the same
  113.                values. (i.e. enter 0,0,0 and the axises will always point 
  114.                along their world equivalents
  115.     3. Object: Rotates the object by HPB but adjusts the objects as if they 
  116.                were inside the spline-object. (i.e. enter 0,0,0 and the
  117.                axises will always be along the splines axises)
  118.     4. Spline: Enter the name of an align spline. The Z-axis will be aligned 
  119.                along with the tangent and the Y-axis will try to point at the
  120.                current position along the align spline. (this can provide exact
  121.                aligning when other generalized methods run into troubles)
  122.  
  123.   Align (on/off):
  124.     Tells the plug which rotations to adjust on the objects. If only heading is 
  125.     1 then the objects wont pitch or bank. Keep in mind that this doesn't mean 
  126.     pitch and bank is set to 0, they keep their previous values.
  127.  
  128. * Fourth dialog: Align type: 1 Align method: 1
  129.  
  130.   Enter a vector (the coordinates for a point to which one can imagine that a
  131.   line from origo points to) in the appropriate fields. In you want to use the
  132.   "To:" fields you need to put a 1 in the "To:" field. You can also specify a
  133.   banking value.
  134.  
  135. * Fourth dialog: Align type: 2 Align method: 1
  136.   
  137.   Similar to the above except that this one uses a start-value and an interval
  138.   instead (similar to the two position variants).
  139.  
  140. * Fourth dialog: Align type: 1 and 2 Align method: 2 and 3
  141.  
  142.   Enter HPB-values to use for the aligning described in the align method text.
  143.   Align type one and two is differentiated in the same way as before.
  144.  
  145. * Fourth dialog: Align type: 1 and 2 Align method: 4
  146.  
  147.   This aligns by an align spline. The HPB-values are for manual correction (they
  148.   are added to the rotation) and are used as in method 2 and 3.
  149.  
  150.  
  151. * Third dialog: Align type: 3
  152.  
  153.   This align type utilizes method 1 and 4 above (here called 1 and 2) in a similar
  154.   way except that it aligns the Z-axis, not along the tangent, but instead to a 
  155.   point further along the spline.
  156.  
  157.   Distance type:
  158.     This is the distance to the point the Z-axis is pointing at. Similar to the 
  159.     position units (percent, meter and point) except that this also accepts 0.
  160.     0 means that the Z-axis is pointed to the position of the next object
  161.     (the last object is oriented along the tangent).
  162.  
  163.   Distance:
  164.     Enter the distance to the align point. Big values gives more lookahead. Not
  165.     used with distance type 0.
  166.  
  167.  
  168. * Fifth dialog: Scaling: 1
  169.    
  170.   With scaling enabled you don't just have control over the posisition and rotation
  171.   of your objects, but you also can adjust their scale. The easiest use is to just
  172.   change the base scale over time, but you can also use several scaling splines and
  173.   even morph them.
  174.  
  175.   Base-scale: 
  176.     All scales are multiplied with this value, i.e. set it to two and all objects 
  177.     will be twice the size. Can be animated over time.
  178.  
  179.   X-Y-Z-spline:
  180.     The name of the scaling spline you wish to use for the scaling axis. If use X
  181.     for all is enabled the X-spline is used for all the axises.
  182.  
  183.   Use X for all:
  184.     see above
  185.  
  186.   Base: 
  187.     This is the distance to the scale-spline that should generate a scale of 1. If
  188.     the scale-spline-point is further away the scale is >1 and the other way around.
  189.     If this is -1 the corresponding spline won't be used and the scale on that axis
  190.     will be 1 (still multiplied with base scale though). If you want "WYSIWYG" you 
  191.     should set the base value to your objects "radius" along that axis.
  192.  
  193.   About the scale splines: This is how the plug uses the scaling splines
  194.     First it finds a point along the scaling spline at the same position as along the
  195.     placing spline. Then it zeros the X-value of the point, i.e. places it on the ZY-
  196.     plane. There it measures the distance from origo (0,0). That value is divided by 
  197.     the corresponding base value to give the relative scale.
  198.  
  199.   How should they be placed:
  200.     The scaling splines should be placed along the positive X-axis. I chose to make it 
  201.     like this to enable easy animation of the position-spline (otherwise you would have
  202.     to animate your scaling spline in a similar way by hand). See one of the example
  203.     scenes if your still confused.
  204.  
  205. ************************
  206. *** NAME POSITIONING ***
  207. ************************
  208.  
  209. Two things was left out of the above description as they deserve an own section. One of 
  210. the is name placing. This is a way to incorporate more advanced placing schemes than the
  211. two basic method of start and end and start and interval can do. It's more like several
  212. single placements, just that they are easily controlled. The key is that it uses the 
  213. objects' names for placing. If an object is name "0.5" (and unit is %) then it's placed
  214. at 50%. This dialog comes up if you enter "3" in position type:
  215.  
  216. Start:
  217.   This is entered like in the other modes. The start value is added to the name value
  218.   and can be useful if you want to move all objects together. 
  219.  
  220. Wrap:
  221.   These two are also similar to the other modes.
  222.  
  223. Pos. scale:
  224.   All positions are multiplied with this value (before being added to the start value). 
  225.   Useful if you want to...well...make your objects come closer to each other.
  226.  
  227. Autoparsing:
  228.   To make sure that the objects really are placed at their appropriate position, even
  229.   when you change the name all the time, the plugs checks each objects name every time
  230.   if this is 1. When you are satisfied you can set this option to 0 so no unnecessary
  231.   processor power is spent. (though it doesn't bog it down that much) 
  232.   Even though the plug checks the position every time it's called, due to the nature
  233.   of C.O.F.F.E.E. it's only called when you move the time-line or redraw (ctrl-F). 
  234.   There's nothing I can do about this.
  235.  
  236. Rename: (in the first dialog)
  237.   But, isn't it very hard to name all the object? No, fortunately I have added an option
  238.   to rename all the objects to their position using any of the other methods. Just attach
  239.   your objects as normal, using type 1 or 2 for positioning, and enter 1 in "Rename:".
  240.   All objects are now named accordingly. Go into the key again, put 0 into "Rename:" and
  241.   3 into position type. Then make your changes by changing the name of the objects.
  242.  
  243.  
  244. ********************************
  245. *** SCALE-SPLINE POSITIONING ***
  246. ********************************
  247.  
  248. This is the other section left out. It was a late addition to the plug and could be 
  249. improved in many ways, but it does work and can create really cool results. This is
  250. mostly thought of to be used with a lot of splines and a loft NURBS but I'm sure that
  251. you can think of other uses as well. With the normal scaling you can just adjust the 
  252. scale along the object. But what if wanted to create a shape that goes back again or 
  253. make a hollow shape. Of course you could do this with name placing but it would be
  254. a real PITA to do. With scale-spline positioning you can instead just draw the outline
  255. of the object and the rest is magic.
  256.  
  257. When you enter 4 in the position type field you are faced with a dialog similar to name
  258. placing. This is because it uses the same code to place the objects but it gets it's
  259. values not from the names but from the discarded X-values of the X-scaling-spline.
  260.  
  261. It's recommended that you set units to meters and turn of wrap in the dialog.
  262.  
  263. See the example scene and examine the options to get a grip of how it works...
  264.  
  265. *********************************
  266. *** MORHPING EXTERNAL SPLINES ***
  267. *********************************
  268.  
  269. If you try to morph a scaling or align spline you will notice that it doesn't work.
  270. This is because other objects' animations can't see the result. They still see the
  271. base object. To fix this I made another plug (included) called globalize. It is placed 
  272. on the morphing object and changes it's base object to reflect the morph. This has the
  273. draw-back that the morph is irreversible, i.e. you can't just remove the morph-track, 
  274. but that's a small prize for morphing scale splines :-)
  275.  
  276. You can also use globalize to globalize position, for example if you want to use
  277. "Point at..." on a "Midpoint"-ed object you can with globalize. See the example
  278. scenes if you're still confused...
  279.  
  280.  
  281. Please mail me if you have any questions at cst@wineasy.se!
  282. Mikael Sterner, XLent Plugs
  283.  
  284.   
  285.   
  286.  
  287.   
  288.  
  289.   
  290.  
  291.  
  292.   
  293.   
  294.  
  295.  
  296.  
  297.  
  298.